/* Integration points (quadratures)
   Jukka Toivanen, Jan Stebel
*/

#include "quaddiscpoint.h"



template<>
inline int QuadDiscPoint<3>::mapDof(int e, int n)
{
	return e*10+n;
}

template<>
inline int QuadDiscPoint<3>::mapDof(int e, int n, int p)
{
	throw 1;
}




template<>
inline int QuadDiscPoint<2>::mapDof(int e, int n)
{
	return imesh->getNvolumes()*10+e*6+n;
}

template<>
inline int QuadDiscPoint<2>::mapDof(int e, int n, int p)
{
	return imesh->getFaceParentNo(e, p)*10+imesh->getFaceParentNodeNo(e,p,n);
}



template<>
inline int QuadDiscPoint<1>::mapDof(int e, int n)
{
	return imesh->getNvolumes()*10 + imesh->getNfaces()*6 + e*3+n;
}

template<>
inline int QuadDiscPoint<1>::mapDof(int e, int n, int p)
{
	return imesh->getNvolumes()*10+imesh->getEdgeParentNo(e, p)*6+imesh->getEdgeParentNodeNo(e,p,n);
}



template class QuadDiscPoint<1>;
template class QuadDiscPoint<2>;
template class QuadDiscPoint<3>;
